package com.hsnn.medstgmini.base.dict.service.impl;

import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.hsnn.medstgmini.base.dict.dao.DicDrugformDao;
import com.hsnn.medstgmini.base.dict.dao.DicDrugformLogDao;
import com.hsnn.medstgmini.base.dict.model.DicDrugform;
import com.hsnn.medstgmini.base.dict.service.DicDrugformManager;
import com.hsnn.medstgmini.util.Pagination;


/**
 * 基础库 数据字典 剂型字典 接口实现类
 * @author hss@njhsnn
 * 2015年6月9日
 */
@Service()
public class DicDrugformManagerImpl  implements DicDrugformManager {

	@SuppressWarnings("unused")
	private static final Logger log = Logger.getLogger(DicDrugformManagerImpl.class); 
	private DicDrugformDao dicDrugformDao;
	
	@Autowired
    public void setDicDrugformDao(DicDrugformDao dicDrugformDao) {
        this.dicDrugformDao = dicDrugformDao;
    }
	 
    @Autowired
    private DicDrugformLogDao dicDrugformLogDao;

	/**
	 * 基础库 数据字典 剂型字典 查询
	 */
	@Override
	public Pagination queryDicDrugformList(Pagination page,DicDrugform dicDrugform) {
		page=dicDrugformDao.queryDicDrugformList(page,dicDrugform);
		@SuppressWarnings("unchecked")
		List<Object> list = (List<Object>) page.getRows();
		List<DicDrugform> data = new ArrayList<DicDrugform>();
		if(list.size()>0){
			for(int i=0;i<list.size();i++){
				Object[] obj=(Object[]) list.get(i);
				DicDrugform ds = new DicDrugform();
				DicDrugform fds = new DicDrugform();
				fds.setFormCode(obj[1]==null?"":obj[1].toString());
				fds.setFormName(obj[2]==null?"":obj[2].toString());
				ds.setFormId(obj[0]==null?"":obj[0].toString());
				ds.setFatherCode(fds);
				ds.setFormCode(obj[3]==null?"":obj[3].toString());
				ds.setFormName(obj[4]==null?"":obj[4].toString());
				ds.setStatus(obj[5]==null?null:Short.parseShort(obj[5].toString()));
				data.add(ds);
			}
		}
		page.setRows(data);
		return page;
	}
	
	
	/**
	 * 基础库 数据字典 剂型字典 根据id查询数据
	 * @param Id
	 */
	@Override
	public List<DicDrugform> queryDicDrugformById(String Id) {
		return dicDrugformDao.queryDicDrugformById(Id);
	}

	
	
	/**
	 * 
	 *@category 停用启用（状态改变）
	 *@author wangbing
	 *@date 2015年6月9日
	 *void
	 */
	@Transactional
	@Override
	public void changeStatus(DicDrugform dicDrugform) {
		dicDrugformDao.changeStatus(dicDrugform);
	}
	
	@Transactional
	@Override
	public Pagination initEdit(Pagination page){
		return dicDrugformDao.initEdit(page);
	}
	
	@Transactional
	@Override
	public void updateForm(Pagination page) {
		dicDrugformDao.updateForm(page);
		
	}
	
	@Transactional
	@Override
	public void addForm(Pagination page) {
		dicDrugformDao.addForm(page);
		
	}
	
	/**
	 * 根据code或name查看有无重复数据
	 * @param code,name
	 * @return
	 */
	@Override
	public List<DicDrugform> getFormBy(String key,String value,String formId) {
		return dicDrugformDao.getFormBy(key,value,formId);
	}
	
	public void exportExcel(Pagination page,OutputStream os){
		dicDrugformDao.exportExcel(page,os);
	}
}
